package com.ruoyi.business.domain;

import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 客户对象 customer
 * 
 * @author ruoyi
 * @date 2025-04-01
 */
public class Customer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增长主键 */
    private Long id;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 客户分类ID */
    @Excel(name = "客户分类ID")
    private Long customerCategoryId;

    /** 价格等级 */
    @Excel(name = "价格等级")
    private String priceLevel;

    /** 专属折扣 */
    @Excel(name = "专属折扣")
    private BigDecimal exclusiveDiscount;

    /** 初始积分 */
    @Excel(name = "初始积分")
    private Long initialPoints;

    /** 初始欠款 */
    @Excel(name = "初始欠款")
    private BigDecimal initialDebt;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 联系地址 */
    @Excel(name = "联系地址")
    private String contactAddress;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String shippingAddress;

    /** 收货人 */
    @Excel(name = "收货人")
    private String consignee;

    /** 收货人电话 */
    @Excel(name = "收货人电话")
    private String consigneePhone;

    /** 是否为默认收货地址 */
    @Excel(name = "是否为默认收货地址")
    private String defaultShippingAddress;

    /** 是否使用客户联系地址 */
    @Excel(name = "是否使用客户联系地址")
    private String useContactAddress;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 传真 */
    @Excel(name = "传真")
    private String fax;

    /** 开户银行 */
    @Excel(name = "开户银行")
    private String bankName;

    /** 银行账号 */
    @Excel(name = "银行账号")
    private String bankAccount;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 微信号 */
    @Excel(name = "微信号")
    private String wechatId;

    /** QQ */
    @Excel(name = "QQ")
    private String qq;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    private long userId;

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }


    /** 客户分类信息 */
    private List<CustomerCategory> customerCategoryList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }

    public void setCustomerCategoryId(Long customerCategoryId) 
    {
        this.customerCategoryId = customerCategoryId;
    }

    public Long getCustomerCategoryId() 
    {
        return customerCategoryId;
    }

    public void setPriceLevel(String priceLevel) 
    {
        this.priceLevel = priceLevel;
    }

    public String getPriceLevel() 
    {
        return priceLevel;
    }

    public void setExclusiveDiscount(BigDecimal exclusiveDiscount) 
    {
        this.exclusiveDiscount = exclusiveDiscount;
    }

    public BigDecimal getExclusiveDiscount() 
    {
        return exclusiveDiscount;
    }

    public void setInitialPoints(Long initialPoints) 
    {
        this.initialPoints = initialPoints;
    }

    public Long getInitialPoints() 
    {
        return initialPoints;
    }

    public void setInitialDebt(BigDecimal initialDebt) 
    {
        this.initialDebt = initialDebt;
    }

    public BigDecimal getInitialDebt() 
    {
        return initialDebt;
    }

    public void setContactPerson(String contactPerson) 
    {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() 
    {
        return contactPerson;
    }

    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }

    public void setContactAddress(String contactAddress) 
    {
        this.contactAddress = contactAddress;
    }

    public String getContactAddress() 
    {
        return contactAddress;
    }

    public void setShippingAddress(String shippingAddress) 
    {
        this.shippingAddress = shippingAddress;
    }

    public String getShippingAddress() 
    {
        return shippingAddress;
    }

    public void setConsignee(String consignee) 
    {
        this.consignee = consignee;
    }

    public String getConsignee() 
    {
        return consignee;
    }

    public void setConsigneePhone(String consigneePhone) 
    {
        this.consigneePhone = consigneePhone;
    }

    public String getConsigneePhone() 
    {
        return consigneePhone;
    }

    public void setDefaultShippingAddress(String defaultShippingAddress) 
    {
        this.defaultShippingAddress = defaultShippingAddress;
    }

    public String getDefaultShippingAddress() 
    {
        return defaultShippingAddress;
    }

    public void setUseContactAddress(String useContactAddress) 
    {
        this.useContactAddress = useContactAddress;
    }

    public String getUseContactAddress() 
    {
        return useContactAddress;
    }

    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }

    public void setFax(String fax) 
    {
        this.fax = fax;
    }

    public String getFax() 
    {
        return fax;
    }

    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }

    public void setBankAccount(String bankAccount) 
    {
        this.bankAccount = bankAccount;
    }

    public String getBankAccount() 
    {
        return bankAccount;
    }

    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }

    public void setWechatId(String wechatId) 
    {
        this.wechatId = wechatId;
    }

    public String getWechatId() 
    {
        return wechatId;
    }

    public void setQq(String qq) 
    {
        this.qq = qq;
    }

    public String getQq() 
    {
        return qq;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public List<CustomerCategory> getCustomerCategoryList()
    {
        return customerCategoryList;
    }

    public void setCustomerCategoryList(List<CustomerCategory> customerCategoryList)
    {
        this.customerCategoryList = customerCategoryList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("customerName", getCustomerName())
            .append("customerCategoryId", getCustomerCategoryId())
            .append("priceLevel", getPriceLevel())
            .append("exclusiveDiscount", getExclusiveDiscount())
            .append("initialPoints", getInitialPoints())
            .append("initialDebt", getInitialDebt())
            .append("contactPerson", getContactPerson())
            .append("contactPhone", getContactPhone())
            .append("contactAddress", getContactAddress())
            .append("shippingAddress", getShippingAddress())
            .append("consignee", getConsignee())
            .append("consigneePhone", getConsigneePhone())
            .append("defaultShippingAddress", getDefaultShippingAddress())
            .append("useContactAddress", getUseContactAddress())
            .append("email", getEmail())
            .append("fax", getFax())
            .append("bankName", getBankName())
            .append("bankAccount", getBankAccount())
            .append("birthday", getBirthday())
            .append("wechatId", getWechatId())
            .append("qq", getQq())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .append("customerCategoryList", getCustomerCategoryList())
            .toString();
    }
}
